package com.ias.agdis_r.activity;

import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.ias.agdis_r.R;
import com.ias.agdis_r.manager.EffectManager;
import com.ias.agdis_r.terminalmanager.restful.base.endpoint.response.BaseResponse;
import com.ias.agdis_r.terminalmanager.restful.base.endpoint.response.BaseResponseHeader;

public abstract class BaseFragment extends Fragment {

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		return super.onCreateView(inflater, container, savedInstanceState);
	}

	/**
	 * Http通讯结束后的处理
	 * 
	 */
	protected void httpResponseExcute(String serviceId, BaseResponse response) {

		if (response.getHeader().getStatus() == BaseResponseHeader.STATUS_FAILED) // 发送消息返回的状态值如果是失败
		{
			// TODO 失败处理,更新UI
			operateResponseFail(serviceId, response);
		} else // 发送消息返回的状态值如果是成功
		{
			// TODO 成功处理，更新UI
			operateResponseSucess(serviceId, response);
		}
	}

	/**
	 * HTTP请求成功动作（返回消息中state不为0）
	 * 由BaseFragementActivity触发
	 */
	protected abstract void operateResponseSucess(String serviceId,
			BaseResponse response);

	/**
	 * 更新视图事件（用于接收到TCP消息以及普通刷新）
	 * @param tag
	 */
	protected abstract void updateUI(String tag);
	
	/**
	 * 更新视图事件（用于接收到TCP消息以及普通刷新）
	 * @param tag
	 */
	protected void updateUI(String tag,String tnb)
	{
		this.updateUI(tag);
	}

	/**
	 * HTTP请求失败动作（返回消息中state为0）
	 * 由BaseFragementActivity触发
	 */
	protected void operateResponseFail(String serviceId, BaseResponse response) {
		try {
				//显示错误消息
				EffectManager.getInstance().ttsPlay(EffectManager.TTS_TYPE_TASK,
						response.getHeader().getErrorMessage(), false);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			//显示错误消息
			EffectManager.getInstance().ttsPlay(EffectManager.TTS_TYPE_TASK,
					getString(R.string.receive_message_exception), false);
		}
	};
}
